شاید شما بگویید که ADO.NET می تواند با استفاده از DataSet به این آرمان دست یابد .اما در این جا از یک شی DataAdapter می بایست استفاده کنید . یک شی DataAdapter چهار شی Commandرا در خود پیاده سازی می کند که این اشیاء برای انجام عملیات Select ،Delete ،Update و Insert بر روی پایگاه داده مورد استفاده قرار می گیرند ولی توجه داشته باشید که برای انجام این عمل شما می بایست این اشیاء را با عبارت SQL مناسب خود مقدار دهی کنید و اگر متوجه شده باشید تا هنگام اجرای برنامه نمی توانیم از صحت عبارت SQL خود اطمینان کسب کنید .این بدان معناست که عبارات SQL در زبان های دات نت بیگانه هستند و عبارت SQL مقدار دهی شده برای دات نت و برنامه نویس در تاریکی است !
LINQ چیست؟
در کنفرانس توسعه دهندگان حرفه ای مایکروسافت (PDC) در سال ۲۰۰۵ ، آقای هلسبرگ یک تکنولوژی جدید که بتوان با آن با هر نوع منبع داده ای به یک روش یکسان اتصال برقرار کرد ، به نام LINQ ارائه کرد.
LINQ مخفف عبارت Language-Integrated Query است توجه داشته باشید که آن را لینک (Link) تلفظ کنید .
LINQ یک راه یکسان برای اتصال اتصال برقرار کردن و بازیابی اطلاعات از هر شی که رابط IEnumerableرا پیاده سازی کرده باشد فراهم میکند. بوسیله LINQ می توان با آرایه ومجموعه (Collection) درون حافظه ،پایگاه داده های رابطه ای و حتی اسناد XML را به عنوان منبع داده در نظر گرفت و با آن کار کرد!
بوسیله LINQ می توان اطلا عات را از هر منبع داده ای دادهی با گرامری مشابه و خوش شکل بازیابی کرد .گرامری که بسیار شبیه به نوشتار نحوی SQL است ،توجه داشته باشید که هدف تیم سازنده LINQ ، اضافه کردن یک را جدید برای بازیابی دادها نیست ، بلکه فراهم کردن یک مجموعه دستورات محلی و جامع برای بازیابی اطلاعات (Query Expression)که از هر نوع منبع داده ای پشتیبانی می کند.
LINQ یه سری مجموعه دستورات توانمند را ارائه می دهد که بوسیله آنها می توان پرس و جوهای پیاده سازی کرد که از مواردی چون Join ها، توابع Aggregation ،مرتب سازی ، فیلتر و… پشتیبانی کند.این دستورات را language-level می نامند و دیگر نیازی به کامپایل برای دیدن نتیجه نیست ! بله این مشکلی بود که در تکنولوژی ADO.NET با آن دستو پنجه نرم می کردیم ،یعنی برای مشاهده نتیجه کوئری آن را اجرا می کردیم و مشکلاتی از قبیل خطا یابی که برنامه نویسی را دشوار می کرد .
شاید شما فکر کنید که LINQ ابزاری است که بتوان با آن کوئری های برای آرایه و مجموعه ها ، پایگاه داده و یا XML پیاده سازی کرد ولی این تعریف درستی از LINQ نیست بلکه یک تکنولوژی است که بتوان Provider های را پیاده سازی کرد تا بوسیله آن با پایگاه داده ها ارتباط برقرار کرد به طور مثال Provider های مانند LINQ to SQL و یا LINQ to XML که توسط تیم توسعه .NET پیاده سازی شده اند به آن مدل Provider اطلاق می شود (LINQ provider model).
نمودار زیر توسط اعضای تیم توسعه دات نت تهیه شده که عملکرد LINQ را نشان می دهد.
بالا ترین سطح نمودار نشان دهنده زبان های است که پشتیبانی کاملی از LINQ انجام می دهند
سطح میانی این نمودار ۵ بخش اصلی پروژه لینک را نشان می دهد:
- LINQ to Objects : یک API است و متدهای که نشان دهنده عملگر های استاندارد پرس و جو می باشند را فراهم می کند. این متدها برای بازیابی اطلاعات از تمامی اشیائی که رابط IEnumerable را پیاده سازی کرده باشند ، استفاده می شود ( آرایه و مجموعه عام و غیر عام درون حافظه) .
- LINQ to DataSet : این مدل،از عملیات پرس و جو بر روی DataTable ها و DataSet های موجود در ADO.NET پشتیبانی می کند.
- LINQ to SQL : نامی است که برایAPI ، IQueryable معین شده که به وسیله آن با می توان از بانک های رابطه ای مانند SQL Sever استفاده کرد.به طور خلاصه باعث تسهیل در استفاده از بانک اطلاعاتی را برای استفاده از بانک اطلاعاتی برای پرس و جو ،درج ،حذف و ویرایش می شود. برای استفاده از LINQ to SQL می بایست یک ارجاع به اسمبلی System.Data.Linq.dll داشته باشید.
- LINQ to Entities : یک راه حل ارائه شده توسط Microsoft ORM می باشد و توسعه یافته LINQ to SQL است.LINQ to Entities بین پایگاه داده ی فیزیکی و طراحی منطقی و تجاری قرار می گیرد و اجازه استفاده از آن را به صورت موجودیت (Entites) ها می دهد (موجودیت های که شاید از چندین جدول درست شده باشند)
- LINQ to XML : علاوه بر تعمیم عملگرهای استاندارد پرس و جو شامل یک سری خصوصیات ویژه XML برای ایجاد اسناد XML و همچنین پرس و جو بر روی آنها می باشد البته Micosoft خصوصیت جدیدی برای استفاده از اسناد XML طراحی نکرده بلکه استاندارد XML DOM را پشتیبانی کرده است یعنی دیگر نیازی به یادگیریXPath ندارید .برای استفاده از LINQ to XML می بایست یک ارجاع به اسمبلی System.Xml.Linq.dll به پروژه اضافه کنید
البته برنامه نویسان می تو انند این Provider ها را توسعه دهند و برای مصارف خاص از آنها استفاده کنند در زیر لیستی از Provider های توسعه یافته به همراه لینک مربوطه، موجود است :
- LINQ Extender
- LINQ over C# project
- LINQ to Active Directory
- LINQ to Amazon
- LINQ to Bindable Sources
- LINQ to CRM
- LINQ to Excel
- LINQ to Expressions
- LINQ to Flickr
- LINQ to Geo
- LINQ to Google
- LINQ to Indexes
- LINQ to JavaScript
- LINQ to JSON
- LINQ to LDAP
- LINQ to LLBLGen Pro
- LINQ to Lucene
- LINQ to Metaweb
- LINQ to MySQL
- LINQ to NCover
- LINQ to NHibernate
- LINQ to Opf3
- LINQ to Parallel (PLINQ)
- LINQ to RDF Files
- LINQ to Sharepoint
- LINQ to SimpleDB
- LINQ to Streams
- LINQ to WebQueries
- LINQ to WMI
مدل رابطه ای دارای مزایایی است که در نگاه اول متوجه آن نمی شویم ولی با نگرش در آن به این مزایا واقف می شویم.
- برنامه نویس می تواند با تصور خود کوئری طراحی کند و آنها را به صورت بصری ویرایش کند.
- با فراهم شدن گزینه قبل شرایطی بوجود می آید که که برنامه نویس می تواند کوئری خود را به حداکثر کارایی خود برساند چون کوئری را مشاهده می کند.
- برنامه نویس می تواند Provider ی برای منبع داده خود طراحی کند تا دیگران با آن به منبع داده او دسترسی داشته باشند به طور مثال اگر شما یک web service داشته باشید و بخواهید کاربران تحت یک سیستم به آن دسترسی داشته باشند برای این منطور می توانید یک Provider طراحی کنید.
اسمبلی های مر کزی LINQ:
- System.Core.dll : انواعی را تعریف می کند که LINQ API مرکزی را نمایش می دهند . این یکی از اسمبلی های است که شما باید به آن ارجاع داشته باشید
- System.Data.Linq.dll : کارایی برای استفاده LINQ با پایگاه داده های رابطه ای را مهیا می کند.(LINQ to SQL)
- System.Xml.Ling.dll : کارایی برای استفاده LINQ با اسناد XML را فراهم می کند.(LINQ to XML)
- دانلود با لینک مستقیم
- حجم : 26 مگابایت
- رمز: www.daneshjooyar.com
دانلود پروژه
نظرات شما عزیزان:
موضوعات مرتبط: 25- برنامه نویسی ، 29- آموزش #C ، 32- آموزش LINQ ، ،
برچسبها:
700-روش حذف کردن اکانت و حساب تلگرام با کامپیوتر – Delete Telegram
699 - آموزش نصب همزمان چند تلگرام روی کامپیوتر
698- نصب همزمان 29 بیست و نه تلگرام رنگا رنگ بر روی یک گوشی بدون نیاز به روت
697 - ساخت آیکن بدون استفاده از نرم افزار جانبی
696 - نصب همزمان 7 هفت اینستاگرام در یک گوشی
695 {{ آموزش فریم ورک FuelPHP برای اولین بار به زبان فارسی }}
694 {{ اموزش نصب ابزار PHP در Visual Studio }}
693 {{ فیلم آموزش کامل و جامع سیستم مدیریت محتوای دیتالایف }}
692 {{ چگون یک سایت رایگان راه اندازی نمائیم }}
691 {{ تفاوت بانک اطلاعاتی مبتنی بر SQL با NOSQL و NEWSQL }}
690{{ آموزش بانک اطلاعاتی cassandra }}
689{{ آموزش بانک اطلاعاتی گراف دیتابیس(لینک اصلاح شد) }}
688{{ آموزش بانک اطلاعاتی MongoDB(لینک اصلاح شد) }}
687 {{ آموزش بانک اطلاعاتی neo4j (SQL }}
686 {{ دانلود فیلم آموزش بانک اطلاعاتی spanner }}
685 {{ دانلود فیلم اموزش شناخت مبنا ها و عملیات ریاضی در مبناهای مختلف }}
0684{{ آموزش تخصصی فارسی کردن منوهای گوشی های اندروید بدون نیاز به روت }}
0683{{ آموزش برنامه نویسی اندروید AndroidC }}
0682{{ دانلود کتاب های دوره های بین المللی طراحی وب سایت }}